package com.ssm.car.rpc.service.impl.parkinglot;

import com.github.pagehelper.PageInfo;
import com.ssm.car.dao.mapper.parking.ParkingDao;
import com.ssm.car.dao.mapper.parkinglot.ParkinglotDao;
import com.ssm.car.dao.model.Parkinglot;
import com.ssm.car.rpc.api.parkinglot.ParkinglotService;
import com.ssm.upms.dao.mapper.ssm.LzDao;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 2017年5月23日  闫增宝
* 停车位管理 Service
* @author GaoXiang
* @version 1.0
*/
@Service
public class ParkinglotServiceImpl extends LzDao<Parkinglot> implements ParkinglotService {

    @Resource
    private ParkinglotDao parkinglotDao;

    @Resource
    private ParkingDao parkingDao;

   /* @Resource
    private  LockDao lockDao;*/

    /**
    * 保存数据
    * @param parkinglot 实体对象
    * @return 实体id
    * @throws Exception 数据保存异常
    */
    public Integer insert(Parkinglot parkinglot) throws Exception {
        return parkinglotDao.insert(parkinglot);
    }

    /**
    * 根据 id 修改
    * @param parkinglot 带id的实体对象
    * @return 受影响的行数
    * @throws Exception 数据修改异常
    */
    public Integer updateById(Parkinglot parkinglot) throws Exception {
        return parkinglotDao.updateById(parkinglot);
    }

    /**
    * 根据 id 删除
     * 2017-6-3 13:27:40 韩榕榕
    * @param id 数据id
    * @return 受影响的行数
    * @throws Exception 数据删除异常
    */

    public Integer deleteById(String id) throws Exception {
      Parkinglot parkinglot= parkinglotDao.selectById(id);
       if(parkinglot.getLockId()!=null || parkinglot.getLockId()!="" ){
        /*   lockDao.deleteById(parkinglot.getLockId());*/
       }
        return parkinglotDao.deleteById(id);
    }


    /**
    * 根据 id 查找
    * @param id 实体id
    * @return 实体
    */
    public Parkinglot selectById(String id) {
        return parkinglotDao.selectById(id);
    }

    /**
    * 根据 id 批量删除
    * @param ids 要删除的id
    * @return 影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteByIds(List<String> ids) throws Exception {
        return parkinglotDao.deleteByIds(ids);
    }

    /**
    * 查询列表
    * @param map 参数
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map) {
        return parkinglotDao.list(map);
    }

    /**
    * 查询列表 带分页
     * 2017-5-25 12:02:04 韩榕榕
    * @param map 参数
    * @param page 页码
    * @param size 每页大小
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map, int page, int size) {
        PageInfo<Parkinglot> parkinglotPageInfo= parkinglotDao.list(map,page,size);
        for(Parkinglot parkinglot:parkinglotPageInfo.getList()){
         /*   parkinglot.setLock(lockDao.selectById(parkinglot.getLockId()));*/
            parkinglot.setParking(parkingDao.selectById(parkinglot.getParkingId()));
        }
        return parkinglotPageInfo;
    }

    /**
     * 根据停车场id 查询 带地锁的并且 空闲的车位
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> selectByParkingIdAndLock(Parkinglot parkinglot) {
        return parkinglotDao.selectByParkingIdAndLock(parkinglot);
    }

    /**
     * 2017年6月2日  闫增宝
     * 判断这个地锁  有没有绑定车位
     * @param lock
     * @return
     */
   /* public Parkinglot selectByLock(Lock lock) {
        return parkinglotDao.selectByLock(lock);
    }
*/

    /**
     * 统计同一停车场下车位的序号相同的个数
     * 2017-6-2 10:10:12 韩榕榕
     * @param parkinglot 实体
     * @return
     */
    public Long countParkinglot(Parkinglot parkinglot){
        return  parkinglotDao.countParkinglot(parkinglot);
    }

    public List<Parkinglot> selectByParking(String parkingId) {
        return parkinglotDao.selectByParking(parkingId);
    }

    /**
     * 根据id查询
     * @param ids
     * @return
     */
    public List<Parkinglot> selectByIds(List<String> ids){
        return  parkinglotDao.selectByIds(ids);
    }



    /**
     * 根据停车场搜车位
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> findByParkingId(Parkinglot parkinglot){
        return  parkinglotDao.findByParkingId(parkinglot);
    }

    /**
     * 根据分区查图片
     * @param zoneId
     * @return
     */
    public Parkinglot findZoneImg(String  zoneId){
        return  parkinglotDao.findZoneImg(zoneId);
    }
}
